本文是根据自己的实践进行总结过来的,是不完全的所有升级注意事项。
如果想直接看结果,请移步到第4部分内容
1.背景
EChart 3是在2015年12月发布的新版本,相比较EChart 2,主要的变化总结如下:
- 1) 支持了直角坐标系(catesian,同 grid)、极坐标系(polar)、地理坐标系(geo)
- 2) 移动端的优化,说明白就是将源码体积减小
- 3) 新增更多图表类型,增加了一些动态效果
- 4) 更丰富的交互模式
- 5) EChart 2推荐使用模块化单文件引入,EChart 3可以选择独立文件或者在webpack中使用模块化(在第2部分说明)
- 6) 异步数据加载与更新(在第3部分说明)。
2 模块/非模块
2.1 EChart 2模块化引入
EChart 2自带有模块化机制,不用使用其它AMD/CMD库就可以require进来echarts提供的模块
EChart 2 引入进来的目录结构:
示例代码:
1 |
|
2.2 EChart 2非模块化引入
1 |
|
2.3 EChart 3模块化引入
通过npm命令安装
1 | npm install echarts --save |
按需引入 ECharts 图表和组件
1 | // 引入 ECharts 主模块 |
2.4 EChart 3非模块化引入
同2.2类似
1 | <script src="echarts.min.js"></script> |
3.异步数据加载与更新
由于地图模块分辨率变高,为了不增大源码的体积,地图模块采用按照需要下载引入
在地图下载页面,下载需要的世界地图/中国地图/中国分省地图,下载后的格式有js和json两种。
对应js格式的,引入的方式是通过script标签
1 | <script src="echarts.js"></script> |
通过JSON格式引入就可以实现异步数据加载与更新
1 | $.get('map/json/china.json', function (chinaJson) { |
4.升级总结
4.1 配置变化举例
EChart 2 | EChart 3 |
---|---|
option.series.mapLocation | 删去,使用left,top,bottom,right定义位置 |
option.series.textFixed | 删去地区的名称文本位置修正 |
dataRange颜色标识属性(示例4.1-1) | visualMap |
单个echarts 实例中最多只能存在一个 grid 组件 | ECharts 3 中可以存在任意个 grid 组件 |
一个网格中(示例4.1-2)|
| addData , setSeries 方法设置配置项|统一使用setOption(示例4.1-3)|
|级联this.myChart = ec.init(dom).showLoading({effect:’bubble’}).hideLoading();|不支持|
| myChart.component.tooltip.showTip 这种形式调用相应的接口触发图表行为|dispatchAction(示例4.1-4)|
示例4.1-1
1 | dataRange: { |
示例4.1-2
图略,官网例子:http://echarts.baidu.com/gallery/editor.html?c=scatter-anscombe-quartet
部分配置属性变化,需要修改
示例4.1-3
1 | myChart.setOption({ |
示例4.1-4
1 | myChart.on('brushselected', renderBrushed); |
4.2 第2部分的模块与非模块更改时候需要注意
4.3 地图模块
EChart 2:
1 | chart.setOption({ |
EChart 3,需要下载地图,使用方式见第3部分。